package com.wyu.service;


import com.wyu.dao.MenuMapper;
import com.wyu.pojo.Page;
import com.wyu.pojo.menu;

import java.util.List;

public class MenuServiceImpl implements MenuService {

    //调用dao层的操作，设置一个set接口，方便Spring管理
    private MenuMapper menuMapper;
    public void setMenuMapper(MenuMapper menuMapper) {
        this.menuMapper = menuMapper;
    }



    @Override
    public void addMenu(menu menu) {
        menuMapper.addMenu(menu);
    }

    @Override
    public void deleteMenuById(Integer id) {
        menuMapper.deleteMenuById(id);
    }

    @Override
    public void updateMenu(menu menu) {
        menuMapper.updateMenu(menu);
    }

    @Override
    public menu queryMenuById(Integer id) {
        return menuMapper.queryMenuById(id);
    }

    @Override
    public List<menu> queryMenu() {
        return menuMapper.queryMenu();
    }

    @Override
    public Page<menu> page(int pageNo, int pageSize) {
        Page<menu> page = new Page<menu>();

        // 设置每页显示的数量
        page.setPageSize(pageSize);
        // 求总记录数
        Integer pageTotalCount = menuMapper.queryForPageTotalCount();
        // 设置总记录数
        page.setPageTotalCount(pageTotalCount);
        // 求总页码
        Integer pageTotal = pageTotalCount / pageSize;
        if (pageTotalCount % pageSize > 0) {
            pageTotal+=1;
        }
        // 设置总页码
        page.setPageTotal(pageTotal);

        // 设置当前页码
        page.setPageNo(pageNo);

        // 求当前页数据的开始索引
        int begin = (page.getPageNo() - 1) * pageSize;
        // 求当前页数据

        List<menu> items = menuMapper.queryForPageItems(begin,pageSize);
        // 设置当前页数据
        page.setItems(items);

        return page;
    }

    @Override
    public Page<menu> pageByPrice(int pageNo, int pageSize, int min, int max) {
        Page<menu> page = new Page<menu>();

        // 设置每页显示的数量
        page.setPageSize(pageSize);
        // 求总记录数
        Integer pageTotalCount = menuMapper.queryForPageTotalCountByPrice(min,max);
        // 设置总记录数
        page.setPageTotalCount(pageTotalCount);
        // 求总页码
        Integer pageTotal = pageTotalCount / pageSize;
        if (pageTotalCount % pageSize > 0) {
            pageTotal+=1;
        }
        // 设置总页码
        page.setPageTotal(pageTotal);

        // 设置当前页码
        page.setPageNo(pageNo);

        // 求当前页数据的开始索引
        int begin = (page.getPageNo() - 1) * pageSize;
        // 求当前页数据
        List<menu> items = menuMapper.queryForPageItemsByPrice(begin,pageSize,min,max);
        // 设置当前页数据
        page.setItems(items);

        return page;
    }
}